#pragma once

#include "SelectionBox.hpp"

class SelectionBoxHandler
{
private:
	SelectionBox m_Max,
				 m_Min;

	bool m_SelectingMin, m_SelectingMax; // used to determine if the mouse is currently being used to "select" a box
	
public:
	// Ctr
	SelectionBoxHandler();

	// Simply renders the selection box
	void Render(ClippingPlane* pClippingPlane);
	
	// Set functions
	void HandleEvents(Uint8* keystates, const Vector2D& mouse, SDL_Event* event);
	inline void ResetSelectionMouse() {m_SelectingMin = false; m_SelectingMax = false;} // This function causes the selection box to clip "up" to occur.  (Note: SetEnd is not called.)

	// Get functions

	// Options: "max x1y1", "max x2y2", "min x1y1", "min x2y2"
	Vector2D SelectionBoxHandler::GetLocation(const string& variable);
};